package com.OS;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 工具类
 */
public class Util {
    // 常量，用于表示文件的类型（File、Directory）
    public static final int TYPE_FILE_NOT_FOUND = 0;
    public static final int TYPE_FILE = 1;
    public static final int TYPE_DIRECTORY = 2;

    /**
     * 将数组中指定索引位置的元素移动到数组的最前，同时保持其余元素的相对顺序不变。
     * @param index
     * @param dataArray
     * @return
     */
    public static PageList[] toFirst(int index, PageList[] dataArray){
        if(index>=dataArray.length || index<0){
            System.out.println("数组下标越界！");
            return null;
        }
        for(int i=0;i<index;i++){       // 与下同理
            PageList temp=dataArray[i];
            dataArray[i]=dataArray[index];
            dataArray[index]=temp;
        }
        return dataArray;
    }

    /**
     * 将数组中指定索引位置的元素移动到数组的最后，同时保持其余元素的相对顺序不变。
     * @param index
     * @param dataArray
     * @return
     */
    public static PageList[] toLast(int index, PageList[] dataArray){
        if(index>=dataArray.length-1 || index<0){   // 下标合法性校验
            System.out.println("数组下标越界！");
            return null;
        }
        for(int i=dataArray.length-1;i>index;i--){  // 第一轮index与最后一个互换，互换后index位于最后一个，最后一个位于index，
            PageList temp=dataArray[i];             // 第二轮index与倒数第二个互换，即原先的最后一个换在了倒数第二个，循环往复。。。。
            dataArray[i]=dataArray[index];
            dataArray[index]=temp;
        }
        return dataArray;
    }

    /**
     * 将数组元素翻转，如果传入的数组为[A, B, C, D, E]，则经过反转后的数组为[E, D, C, B, A]。
     * @param array
     * @return
     */
    public static PageList[] reserve(PageList[] array){
        for(int i = 0;i<array.length/2;i++){
            PageList temp = array[i];
            array[i] = array[array.length-i-1];
            array[array.length-i-1]=temp;
        }
        return array;
    }

    /**
     * 获取当前日期
     * @return
     */
    public static String getDate(){
        Date date =new Date();
        SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String dates=format.format(date);
        return dates;
    }
}
